package Day_0217.JavaBase;

/**
 * @author zxc
 * @date 2023/02/17 19:08
 **/
public class ByteCode_File {
    public static void main(String[] args) {
        /**
         * 谈一谈字节码文件的理解
         * ===》
         * 1.字节码：
         * Java源代码，经过虚拟机编译器编译后产生的文件（即扩展为.class的文件），它不面向任何特定的处理器，只面向虚拟机。
         *
         * 2.采用字节码的好处：
         * （1）Java语言通过字节码的方式，在一定程度上解决了传统解释型语言执行效率低的问题，同时又保留了解释型语言可移植的特点。
         * （2）所以Java程序运行时比较高效，而且，由于字节码并不专对一种特定的机器，
         *  因此，Java程序无须重新编译便可在多种不同的计算机上运行。
         *
         * 3.java中的编译器和解释器：
         * （1）Java中引入了虚拟机的概念，即，在机器和编译程序之间加入了一层抽象的虚拟机器。
         *  这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。
         * （2）编译程序只需要面向虚拟机，生成虚拟机能够理解的代码，然后由解释器，来将虚拟机代码转换为特定系统的机器码执行。
         *  在Java中，这种供虚拟机理解的代码叫做字节码（即扩展为.class的文件），它不面向任何特定的处理器，只面向虚拟机。
         *  每一种平台的解释器是不同的，但是实现的虚拟机是相同的。
         *
         * 4.Java源程序的运行过程 ：
         *  （1）Java源程序，经过编译器编译后，变成字节码，字节码由虚拟机解释执行;
         *  （2）虚拟机将每一条要执行的字节码送给解释器，
         *  （3）解释器将其翻译成特定机器上的机器码，然后在特定的机器上运行，
         * ===》这就是上面提到的，Java的特点-编译与解释并存的解释。
         *
         *
         * ===>
         * 总结 ：
         * 即，Java源程序 -->  编译器（将Java源程序编译为Class文件） --> JVM（由解释器将其转化为特定系统的机器码）
         *
         */
    }
}
